package com.jky.stmall.manger.service.impl;

import com.jky.stmall.manger.entity.GoodsPic;
import com.jky.stmall.manger.mapper.GoodsPicMapper;
import com.jky.stmall.manger.service.GoodsPicService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

@Service
public class GoodsPicServiceImpl implements GoodsPicService {

    @Resource
    private GoodsPicMapper goodsPicMapper;

    @Override
    /**
     *  支持当前事务 如果当前有事物 就在  当前事务执行
     *
     *  REQUIRED(0),  如果当前已经开启事务，则在当前事务内执行，如果未开启事务，则新建事务，并在事务内执行
     *  SUPPORTS(1),  如果当前已经开启事务，则在当前事务内执行，如果未开启事务，则在非事务状态下执行
     *  MANDATORY(2), 如果当前已经开启事务，则在当前事务内执行，如果未开启事务，抛出异常
     *
     *  不支持当前事务
     *  REQUIRES_NEW(3),如果当前已经开启事务，则将当前事务挂起，新建一个事务执行，如果未开启，则新建事务，并在事务内执行
     *  NOT_SUPPORTED(4),如果当前已经开启事务，则将当前事务挂起，以非事务执行，如果未开启，则在非事务状态下执行
     *  NEVER(5),        如果已经开启事务，直接抛异常，如果未开启事务，则在非事务状态下执行
     *
     *  事务嵌套
     *  NESTED(6);   如果已开启当前事务，则在事务内再创建一个子事务
     */
    @Transactional(
            propagation = Propagation.REQUIRED
    )
    public int addPatch(List<GoodsPic> pics){
        return goodsPicMapper.insert(pics);
    }

    @Override
    public int removeByGoodsId(Integer goodsId)  {
        return goodsPicMapper.deleteByGoodsId(goodsId);
    }


}
